<?php

/**
 * 删除页面缓存 ajax类
 * @package  ajax
 * @subpackage  backend
 * @create by allen.qiang
 */
header('Content-Type:text/html;charset=utf-8');
require 'module/base/systemHandler.class.php';

class ajax_clearCache {

    public function execute() {

        if (isset($_REQUEST['operFlg']) && $_REQUEST['operFlg'] > 0) {

            switch($_REQUEST['operFlg']) {

                case 1: //删除缓存
                    $this->clearCache();
                    break;

            }

        }

    }

    //删除缓存
    public function clearCache(){

        global $G_PGLOB;

        if( !isset($_REQUEST['dir']) || empty($_REQUEST['dir']) )
            die( json_encode( array( 'code'=>400 , 'message'=>'参数错误' ) ) );

        $result = stripos( $_REQUEST['dir'] , ';' );

        if( $result !== false ){
            str_replace( ';' , '' , $_REQUEST['dir']);
        }

        //组装目录
        $dir = G_HTML_CACHE_HOME.$_REQUEST['dir'];

        //清除目录
        system('rm -fr ' . $dir . '/*');

        echo json_encode( array( 'code'=>200 , 'message'=>'删除成功' ) );
        return;


    }

    /**
     *清空目录
     *@param string $path 目录路径
     * @param bool $rmdir 若为真，则删除目录本身
     */
    public function delDir( $path , $rmdir=false ){

        if(!is_dir($path)){
            return true;
        }

        //删除目录中的内容
        if( $handle=opendir($path) ){

            while( false !== ($item=readdir($handle)) ){

                if($item=="." || $item==".."){
                    continue;
                }

                $item = rtrim($path,"/") . "/" . $item;

                if(is_dir($item)){
                    @rmdir($item);
                }

                @unlink($item);
            }

        }

        //删除目录本身
        if($rmdir){
            @rmdir($path);
        }

        return true;

    }

    /**
     * 清空目录
     * @param 路径 $dir
     */
    function clearDir($dir){

        if(!is_dir($dir)){
            return true;
        }

        $fp=opendir($dir);

        while ( ($fstr=readdir($fp)) ){

            if ($fstr != "." && $fstr != "..") {

                if( is_dir($dir.'/'.$fstr) ){

                    clearDir($dir.'/'.$fstr);

                } else {

                    if(is_file($dir.'/'.$fstr))
                        unlink($dir.'/'.$fstr);

                }

            }

        }

        return true;

    }

}